// 定义一个特质 Logger，该特质包含一个具体方法 log(message: String): Unit。该方法将消息记录到日志中。
// 定义一个类 Calculator，它扩展 Logger 特质。 
// Calculator 类具有两个具体方法 add(x: Int, y: Int): Int 和 subtract(x: Int, y: Int): Int，它们分别返回 x 和 y 的和或差。
// 在 add 和 subtract 方法内部，分别使用 log 方法记录所执行的操作和结果。

trait Logger{
    def log(message: String):Unit = 
        println(message)
}

class Calculator extends Logger {
    def add(x: Int, y: Int): Int = {
        val result = x + y
        log(s"Adding $x and $y, result is $result")
        result
    }
    def subtract(x: Int, y: Int): Int = {
        val result = x - y
        log(s"Subtracting $x and $y, result is $result")
        result
    }
}

val calculator = new Calculator()
calculator.add(10,5)
calculator.subtract(10,5)

// Adding 10 and 5, result is 15
// Subtracting 10 and 5, result is 5